gpsbabel.git
5 years agoFix test logic
Jochen Sprickerhof [Fri, 10 Jul 2020 14:12:53 +0000 (16:12 +0200)]
Fix test logic

5 years agoUpdate changelog for 1.7.0+ds-2 release
Jochen Sprickerhof [Fri, 10 Jul 2020 13:09:27 +0000 (15:09 +0200)]
Update changelog for 1.7.0+ds-2 release

5 years agoUpdate arch list that ignore test result
Jochen Sprickerhof [Fri, 10 Jul 2020 13:07:42 +0000 (15:07 +0200)]
Update arch list that ignore test result

5 years agoUpdate changelog for 1.7.0+ds-1 release
Jochen Sprickerhof [Thu, 9 Jul 2020 19:55:00 +0000 (21:55 +0200)]
Update changelog for 1.7.0+ds-1 release

5 years agoDepend on libusb-1.0-0-dev
Jochen Sprickerhof [Thu, 9 Jul 2020 19:52:46 +0000 (21:52 +0200)]
Depend on libusb-1.0-0-dev

Closes: #810420
5 years agobump debhelper version (no changes)
Jochen Sprickerhof [Thu, 9 Jul 2020 19:52:43 +0000 (21:52 +0200)]
bump debhelper version (no changes)

5 years agorebase patches
Jochen Sprickerhof [Thu, 9 Jul 2020 18:59:02 +0000 (20:59 +0200)]
rebase patches

5 years agoSimplify d/watch
Jochen Sprickerhof [Tue, 7 Jul 2020 20:37:28 +0000 (22:37 +0200)]
Simplify d/watch

5 years agoUpdate d/copyright
Jochen Sprickerhof [Wed, 8 Jul 2020 18:38:26 +0000 (20:38 +0200)]
Update d/copyright

5 years agoMerge branch 'dfsg_clean'
Jochen Sprickerhof [Thu, 9 Jul 2020 20:20:46 +0000 (22:20 +0200)]
Merge branch 'dfsg_clean'

5 years agoCleanup upstream sources
Jochen Sprickerhof [Sun, 26 May 2019 19:45:01 +0000 (21:45 +0200)]
Cleanup upstream sources

5 years agoMerge tag 'gpsbabel_1_7_0' into upstream
Jochen Sprickerhof [Thu, 9 Jul 2020 18:16:26 +0000 (20:16 +0200)]
Merge tag 'gpsbabel_1_7_0' into upstream

gpsbabel_1_7_0

5 years agoRevert "Cleanup upstream sources"
Jochen Sprickerhof [Thu, 9 Jul 2020 18:15:28 +0000 (20:15 +0200)]
Revert "Cleanup upstream sources"

This reverts commit c6e5918029a078e6592af5116d5cb97cbaf4b5d4.

5 years agoRelease candidate (#602)
tsteven4 [Mon, 6 Jul 2020 12:38:58 +0000 (06:38 -0600)]
Release candidate (#602)

* prep for release 1.7.0.

* update reference files for release.

* use windows resource compiler scripts for CLI and GUI.

These rc scripts are used to set the icon the OS sees and to supply
version information that is shown by windows explorer.

* correct file permissions.

* update rc copyright

5 years agoPrevent crash building PDF on MacOS when there's not a missing
Robert Lipe [Fri, 3 Jul 2020 16:37:01 +0000 (11:37 -0500)]
Prevent crash building PDF on MacOS when there's not a missing
SOMETHING to go with this ID tag. We don't seem to need it. Gone.

5 years agoWrite garmin specific ilinks as gpxx:rpt elements (#598)
lintondf [Wed, 1 Jul 2020 00:07:09 +0000 (20:07 -0400)]
Write garmin specific ilinks as gpxx:rpt elements (#598)

* Write garmin specific ilinks as gpxx:rpt elements when garminextensions option is specified

* incorporate code review comments

* comment corrected  to reflect element being closed

5 years agoyum -> apt in Ubuntu instructions (#599)
Markus Wamser [Fri, 26 Jun 2020 14:25:41 +0000 (16:25 +0200)]
yum -> apt in Ubuntu instructions (#599)

5 years agoupdate macos, linux builds to use Qt 5.12.9 (#596)
tsteven4 [Thu, 18 Jun 2020 00:29:45 +0000 (18:29 -0600)]
update macos, linux builds to use Qt 5.12.9 (#596)

* switch macos to Qt 5.12.9

* rebuild docker images

5 years agoAdjust gdb reader duration handling (#595)
tsteven4 [Wed, 10 Jun 2020 11:20:08 +0000 (05:20 -0600)]
Adjust gdb reader duration handling (#595)

* experiment with filtering gdb waypoints.

* formalize new gdb option to avoid creation of waypoints
from non-user points.

Also, don't fill in the description when processing durations.  This
interacted undesirably with the roadbook option.

* fix reference files.

* simplify bool option processing in gdb, new ref files.

* fix reference files again.

* contrast the gdb dropwpt option with the via option

5 years agoclean up some cppcheck warnings in gdb. (#594)
tsteven4 [Mon, 8 Jun 2020 07:16:48 +0000 (01:16 -0600)]
clean up some cppcheck warnings in gdb. (#594)

5 years agoExtract expected travel durations from Garmin BaseCamp GDB output (#585)
lintondf [Sun, 7 Jun 2020 22:19:10 +0000 (18:19 -0400)]
Extract expected travel durations from Garmin BaseCamp GDB output (#585)

* extract track segment expected travel durations from Garmin BaseCamp autorouted GDB exports and report as <rtept/src> elements in gpx output

* revised to use Garmin Format-Specific Data object to store durations

* generate at frozen test time

* include code review suggestions

* store Garmin BaseCamp autoroute waypoint travel durations in the <desc> elements of <rtept> waypoints; modify gpx ouptut to exclude autoroute generated rtept waypoints from initial waypoint list

* remove waypoint class lookup and replace tabs with spaces

* run astyle on gdb.cc

* turn off detailed GDB debugging

Co-authored-by: tsteven4 <13596209+tsteven4@users.noreply.github.com>
5 years agofix Uncaught TypeError: map.checkResize is not a function (#593)
tsteven4 [Sun, 7 Jun 2020 16:56:18 +0000 (10:56 -0600)]
fix Uncaught TypeError: map.checkResize is not a function (#593)

* fix Uncaught TypeError: map.checkResize is not a function

with GUI map preview.

* remove extra newline from map preview javascript.

* tighten up js generation.

* tighten up js some more.

* tweak js generation.

5 years agofix segmentation fault in GUI map preview. (#592)
tsteven4 [Sat, 6 Jun 2020 16:44:04 +0000 (10:44 -0600)]
fix segmentation fault in GUI map preview. (#592)

5 years agorefactor logging (#582)
tsteven4 [Fri, 5 Jun 2020 19:21:34 +0000 (13:21 -0600)]
refactor logging (#582)

* refactor logging to

allow the noreturn attribute on fatal() to be used by analysis
tools while still generating messages with an output stream.

* Add our own message handler.

This allows us to use stderr on windows.  The default message handler
routes QDebug messages to the debugger on windows.

* flush stdout before message logger writes to stderr.

* flush stdout before writing to standard error for fatal().

or else messages can appear in the wrong order on Windows.

5 years agoRemove Mapsource .mps format (#588)
GPSBabel [Thu, 4 Jun 2020 07:46:11 +0000 (02:46 -0500)]
Remove Mapsource .mps format (#588)

* Fix numerous instances of shadowing confusion.

Inspired by a cppcon talk and our recent conversations about warnings, I
took a closer look at shadowing variables in our code and I wasn't proud
of my findings.

We had a lot of code that was writing to local variables or function
arguments when it thought it was operating on globals or (soon)
method-member variables. I made a rather half-hearted pass at changing
this by splitting up huge functions, renaming arguments, renaming globals
to reflect their future status as method variables (foo_), and generally
cleaning things up. The amound of effort I spent on each format was
approximately equal to its expected lifespan - I'm not spending an hour
on cleanups on formats I should instead be deleting.

In a future submit, I'll try to find some combination of -W flags on
our targets that allows us to not regress easily.

* Fix merge conflict I just created in gdb.cc

* Delete workspace.xml

* Delete the same link in garmin_icons.xml that I deleted twice yesterday.
Fix more esoteric warnings.

* Reapply MORE of yesterday's commits.
Seriously, I know this has been committed and is in HEAD...

* Attempt to fix list detachment within route.cc

* Remove Mapsource

The Mapsource format has been deprecated by Garmin for something
like 15 years. Later versions of Mapsource used GDB and Basecamp,
Garmin's first replacement for the Mapsource lineage, was used
exclusively in later versions.

I've reviewed list traffic and floated a discussion on the list.
The code style was never really very flexible and it it bears
a high maintenance cost that we can no longer afford. This
format is dead.

* Remove more pieces of Mapsource.

* Change Netstumbler test to not use Mapsource for staging.
More cleanups.

* Fix netstumbler so I can delete Mapsource. Ugh.

* Update netstumbler with IWYU.

5 years agouse http for upgrade (#587)
tsteven4 [Wed, 3 Jun 2020 11:11:04 +0000 (05:11 -0600)]
use http for upgrade (#587)

* test "TLS initialization failed" issue on windows.

* https ok with desktop services.

5 years agofix Qt 5.15.0 Wdeprecated-declarations warnings for (#584)
tsteven4 [Mon, 1 Jun 2020 20:50:26 +0000 (14:50 -0600)]
fix Qt 5.15.0 Wdeprecated-declarations warnings for (#584)

QXmlDefaultHandler
QXmlInputSource
QXmlSimpleReader

as suggested use QXmlStreamReader instead.

5 years agoconvert osm to format class (#579)
tsteven4 [Mon, 1 Jun 2020 20:49:29 +0000 (14:49 -0600)]
convert osm to format class (#579)

* convert osm to Format class.

* use static function cb w/o lambdas.

5 years agoclean up mkstyle.sh (#578)
tsteven4 [Mon, 1 Jun 2020 18:55:10 +0000 (12:55 -0600)]
clean up mkstyle.sh (#578)

as suggested by shellcheck used $() instead of backticks,
and double quote to prevent globbing and word splitting.
mkstyle.sh now works if the directory path contains a space.

drop the failed attempt to exclude custom.style. This resolves #577
drop the exclusion of README.style, which hasn't existed for a long time.

use basename to drop the suffix instead of piping to sed.

5 years agofix Qt 5.15.0 Wdeprecated-declarations warnings for (#583)
tsteven4 [Mon, 1 Jun 2020 11:26:31 +0000 (05:26 -0600)]
fix Qt 5.15.0 Wdeprecated-declarations warnings for (#583)

QTime::start()
QTime::elapsed()

5 years agomake garmin_tables const (#576)
tsteven4 [Mon, 1 Jun 2020 11:18:49 +0000 (05:18 -0600)]
make garmin_tables const (#576)

and clean up mkicondoc cppcheck errors.

5 years agoMerge pull request #574 from tsteven4/guict
tsteven4 [Thu, 28 May 2020 14:22:47 +0000 (08:22 -0600)]
Merge pull request #574 from tsteven4/guict

clang-tidy fixes for GUI

5 years agoclang-tidy readability-isolate-declaration on gui.
tsteven4 [Wed, 27 May 2020 20:37:09 +0000 (14:37 -0600)]
clang-tidy readability-isolate-declaration on gui.

5 years agoclang tidy modernize-use-auto on gui.
tsteven4 [Wed, 27 May 2020 20:31:23 +0000 (14:31 -0600)]
clang tidy modernize-use-auto on gui.

5 years agoclang tidy modernize-redundant-void-arg on gui.
tsteven4 [Wed, 27 May 2020 20:27:20 +0000 (14:27 -0600)]
clang tidy modernize-redundant-void-arg on gui.

5 years agoclang-tidy readability-redundant-member-init on gui.
tsteven4 [Wed, 27 May 2020 19:48:15 +0000 (13:48 -0600)]
clang-tidy readability-redundant-member-init on gui.

5 years ago Fix numerous instances of shadowing confusion. (#570)
GPSBabel [Wed, 27 May 2020 03:31:16 +0000 (22:31 -0500)]
Fix numerous instances of shadowing confusion. (#570)

Fix numerous instances of shadowing confusion.

Inspired by a cppcon talk and our recent conversations about warnings, I
took a closer look at shadowing variables in our code and I wasn't proud
of my findings.

We had a lot of code that was writing to local variables or function
arguments when it thought it was operating on globals or (soon)
method-member variables. I made a rather half-hearted pass at changing
this by splitting up huge functions, renaming arguments, renaming globals
to reflect their future status as method variables (foo_), and generally
cleaning things up. The amound of effort I spent on each format was
approximately equal to its expected lifespan - I'm not spending an hour
on cleanups on formats I should instead be deleting.

In a future submit, I'll try to find some combination of -W flags on
our targets that allows us to not regress easily.

5 years agoFail configuration if libusb-1.0 is not found (#564)
tsteven4 [Mon, 25 May 2020 17:52:58 +0000 (11:52 -0600)]
Fail configuration if libusb-1.0 is not found (#564)

* have configure fail if libusb is enabled and not found.

* correct indentation in configure.

5 years agoUse strncmp to compare array to string (#545)
Jochen Sprickerhof [Mon, 25 May 2020 15:08:13 +0000 (17:08 +0200)]
Use strncmp to compare array to string (#545)

5 years agofix -Wsizeof-pointer-memaccess in garmin_gpi reader. (#569)
tsteven4 [Mon, 25 May 2020 11:55:37 +0000 (05:55 -0600)]
fix -Wsizeof-pointer-memaccess in garmin_gpi reader. (#569)

again, this really wasn't a problem.  The destination and the
source had the same size.  But we can do better.

5 years agoMerge pull request #567 from gpsbabel/bye_psitrex
GPSBabel [Mon, 25 May 2020 07:51:01 +0000 (02:51 -0500)]
Merge pull request #567 from gpsbabel/bye_psitrex

Remove PSITrex, which has been unused for many years.

5 years agoMerge branch 'bye_psitrex' of https://github.com/gpsbabel/gpsbabel into bye_psitrex
Robert Lipe [Mon, 25 May 2020 04:09:25 +0000 (23:09 -0500)]
Merge branch 'bye_psitrex' of https://github.com/gpsbabel/gpsbabel into bye_psitrex

5 years agoDon't refer to PSITtext in reference files.
Robert Lipe [Mon, 25 May 2020 03:42:29 +0000 (22:42 -0500)]
Don't refer to PSITtext in reference files.

5 years agoMore remnants of PSITrex.
Robert Lipe [Mon, 25 May 2020 03:40:55 +0000 (22:40 -0500)]
More remnants of PSITrex.

5 years agoGarmin_icons in doc can't refer to psitrex any longer.
Robert Lipe [Mon, 25 May 2020 03:38:11 +0000 (22:38 -0500)]
Garmin_icons in doc can't refer to psitrex any longer.

5 years agoCleanup of PSITrex removal
GPSBabel [Mon, 25 May 2020 03:34:35 +0000 (22:34 -0500)]
Cleanup of PSITrex removal

5 years agoCleanup of PSITrex removal
GPSBabel [Mon, 25 May 2020 03:34:16 +0000 (22:34 -0500)]
Cleanup of PSITrex removal

5 years agoCleanup of PSITrex removal
GPSBabel [Mon, 25 May 2020 03:33:46 +0000 (22:33 -0500)]
Cleanup of PSITrex removal

5 years agoActually prepare PSITrex deletion for cleanup
GPSBabel [Mon, 25 May 2020 03:31:53 +0000 (22:31 -0500)]
Actually prepare PSITrex deletion for cleanup

5 years agofix -Wstringop-truncation warning in osm. (#568)
tsteven4 [Mon, 25 May 2020 01:31:08 +0000 (19:31 -0600)]
fix -Wstringop-truncation warning in osm. (#568)

5 years agoteach gdb reader to read autoroute information. (#566)
tsteven4 [Sun, 24 May 2020 16:39:01 +0000 (10:39 -0600)]
teach gdb reader to read autoroute information. (#566)

5 years agoRemove PSITrex, which has been unused for many years.
Robert Lipe [Sun, 24 May 2020 07:00:48 +0000 (02:00 -0500)]
Remove PSITrex, which has been unused for many years.
CC moved to deprecated. The rest was really removed.

5 years agofix a few -Wstringop-truncation warnings (#565)
tsteven4 [Sat, 23 May 2020 21:36:29 +0000 (15:36 -0600)]
fix a few -Wstringop-truncation warnings (#565)

* fix -Wstringop-truncation warning in bushnell.

* fix -Wstringop-truncation in alantrl.

* fix -Wstringop-truncation warning in garmin, and a real error.

The real error:
In garmin.cc route_hdr_pr would fail to terminate the
GPS_SWay rte_ident member if latin1 encoded route name was longer
than 255 characters.  Subsequently garmin.cc route_write passes the
GPS_SWay structure to GPS_Command_Send_Route.  GPS_Command_Send_Route
may call GPS_A20[01]_Send which may call GPS_D202_Send.  GPS_D202_Send
assumes that rte_ident is null terminated.

The other change only silences the warning, the character array was
subsequently terminated anyway.

* fix -Wstringop-truncation warning in enigma.

These are nonstrings.  They are not required to be null terminated.

A real reference file caputred from MGL Central 2.0 is added.  In it
you can see that don't care values are not all filled with a particular
value.  We fill them with NULLs are a result of zeroing the structure before
we write it.  You can also see the 1000m offset in altitudes is correct.

* correct reference file mode.

* fix two strncpy warnings that gcc 9.3.0 doesn't issue.

Perhaps it is a gcc bug that these didn't cause warnings.  It seems
to be related to the fact they were the last member in the structure.
In any event, we can copy 1 byte less, we explicitly add a terminator
subsequently.

5 years agoREADME.md lint cleanups.
Robert Lipe [Wed, 20 May 2020 23:43:25 +0000 (18:43 -0500)]
README.md lint cleanups.

5 years agolet clang-tidy provide default member initializers (#562)
tsteven4 [Wed, 20 May 2020 16:17:55 +0000 (10:17 -0600)]
let clang-tidy provide default member initializers (#562)

* let clang-tidy provide default memeber intializers

This is the check cppcoreguidelines-pro-type-member-init, but
it was only applied to the class declarations for our filters,
formats and vectors.
This is currently irrelevant as all these are constructed globally,
but if one constructs dynamic instances errors can be seen in gpx, kml, nmea
and lowranceusr formats.

* revert filter_vecs change which MSVC 2015 choked on.

5 years agoClarify doc on merge filter for #407.
Robert Lipe [Wed, 20 May 2020 00:21:32 +0000 (19:21 -0500)]
Clarify doc on merge filter for #407.

5 years agoMaggeo source doesn't use xmlgeneric. Delete include.
Robert Lipe [Wed, 20 May 2020 00:09:25 +0000 (19:09 -0500)]
Maggeo source doesn't use xmlgeneric. Delete include.

5 years agoAdd redundant colon.
Robert Lipe [Wed, 20 May 2020 00:07:53 +0000 (19:07 -0500)]
Add redundant colon.

5 years agoPromote GPX examples in doc from simplelist to listitem.
Robert Lipe [Wed, 20 May 2020 00:05:25 +0000 (19:05 -0500)]
Promote GPX examples in doc from simplelist to listitem.

5 years agoquiet some codacy yammering about thrid party files. (#561)
tsteven4 [Tue, 19 May 2020 14:26:55 +0000 (08:26 -0600)]
quiet some codacy yammering about thrid party files. (#561)

5 years agoclean up cppcheck errors, warnings (#560)
tsteven4 [Tue, 19 May 2020 13:12:10 +0000 (07:12 -0600)]
clean up cppcheck errors, warnings (#560)

* fix globalsat_sport cppcheck warnings.

* fix cppcheck warings in energympro.

* fix cppcheck ctunullpointer errors.

* fix cppcheck "error: Unmatched '}'" in shape.h.

* fix format string mismatches.

* fix cppcheck errors in tef_xml.

* fix cppcheck error in alan.

5 years agoadd dg200 test. (#558)
tsteven4 [Fri, 15 May 2020 22:16:42 +0000 (16:16 -0600)]
add dg200 test. (#558)

5 years agoupdate shapelib to 1.5.0. (#559)
tsteven4 [Fri, 15 May 2020 15:04:10 +0000 (09:04 -0600)]
update shapelib to 1.5.0. (#559)

5 years agoconvert dg100 to Format class (#557)
tsteven4 [Thu, 14 May 2020 17:19:24 +0000 (11:19 -0600)]
convert dg100 to Format class (#557)

* convert dg100 format to Format class.

* regenerate dependencies for dg100 format.

* whitespace

5 years agouse qdatetime for dg100 format (#556)
tsteven4 [Wed, 13 May 2020 15:01:50 +0000 (09:01 -0600)]
use qdatetime for dg100 format (#556)

* use QDateTime for dg-100 format.

* fix undefined behavior bug in dg100.

When sending the getconfig command memcpy would be invoked with
src == nullptr.  The behavior of memcpy is undefined under these conditions,
even if the count is zero as it is in this case.

5 years agoAdd regression test capability for DG100/DG200 format. (#554)
tsteven4 [Wed, 13 May 2020 13:22:58 +0000 (07:22 -0600)]
Add regression test capability for DG100/DG200 format. (#554)

* add regression test cabability for dg100 format.

The test compares any written data with the subsequent bytes in the
reference file.  The test supplies any read data from the subsequent
bytes in the reference file.

A reference file can be created from the debug output at level 5
when reading an actual globalsat device:
egrep 'Receiving|Sent' "$log" | sed 's/^Sent: //' | sed 's/^Receiving //' \
| sed 's/RX:.*//' | xxd -r -p > "$log".bin
This creates a binary file from all the bytes transferred to or
from the device.

* update serialization reference files.

Even though the dg100 regression formats are internal, they still
get serialized.  The GUI ignores them.

* Fix memory leak exposed by new dg100 regression test.

By using QList instead of homegrown dynarray16 class.

5 years agofix nmea writer date bug. (#553)
tsteven4 [Thu, 7 May 2020 12:31:39 +0000 (06:31 -0600)]
fix nmea writer date bug. (#553)

* fix nmea writer date bug.

dates before 2000 were written with a month off by one.

This also changes the behavior when the creation time is invalid.
Previously you would get data related to the unix epoch for the date
and time fields.
Now you get empty fields, i.e. ",,"

* fix magellan writer date bug.

This had the same bug as nmea.  It had an additional bug
when it attempted to round the fractional part of a second.  Rounding
can ripple all the way from the fractional part of a second to the year,
as is now demonstrated in the testcase.

Like nmea, magellan will now print empty fields if the creation time
is invalid.

* fix date bug in gpssim.

This is the same bug as in nmea, magproto.

5 years agoconvert unicsv to Format class (#552)
tsteven4 [Mon, 4 May 2020 19:20:22 +0000 (13:20 -0600)]
convert unicsv to Format class (#552)

* convert unicsv to Format class.

Two bugs are fixed as well:
1. { "datum",  fld_date, STR_ANY } is removed from the fields_def.
Note that the type is fld_date.  I don't think this was ever used.
We do have the datum option to set the datum from the command line.
2. unicsv_fondle_header changed the fields_def type to fld_iso_time
if it was fld_time or fld_date and the value contained "iso".
However, fields_def isn't used outside unicsv_fondle_header, so
this had no effect.

* update dependencies.

5 years agofix windows issues with kml.h including windows.h (#551)
tsteven4 [Fri, 1 May 2020 22:12:29 +0000 (16:12 -0600)]
fix windows issues with kml.h including windows.h (#551)

windows.h defines macros for max and min, which lead to compiler
warnings:
random.h(125): warning C4003: not enough arguments for function-like macro invocation 'max' (compiling source file

kml hasn't needed windows.h since ea82fa6d6

5 years agoconvert kml to Format class (#550)
tsteven4 [Fri, 1 May 2020 13:03:31 +0000 (07:03 -0600)]
convert kml to Format class (#550)

* convert kml to Format class.

* update dependencies.

* restore kml real time postion writer functionality.

and have it produce valid kml.

Add a test case.

* correct new kml test reference file name.

5 years agoadd recoverymode and CRC checking to FIT reader. (#549)
tsteven4 [Fri, 1 May 2020 12:32:18 +0000 (06:32 -0600)]
add recoverymode and CRC checking to FIT reader. (#549)

* add recoverymode and CRC checking to FIT reader.

If present, the header CRC is checked.
The file CRC and length is checked.

A recoverymode option is added.
In the default mode we will fatal with:
a bad CRC,
a bad endian field,
an attempt to read when the data section doesn't have sufficient data,
an unexepected EOF.
In recovery mode when we encounter one of these errors we will abort
read processing and continue.  This allows a more immediate cleaner
exit from the reader while still allowing any writer to use data that
was recovered previous to the read abort.

* add further explanation of recoverymode for document.

* make sure garmin fit messages are defined before being used.

5 years agosprintf/snprintf replacements (#548)
tsteven4 [Tue, 28 Apr 2020 12:46:14 +0000 (06:46 -0600)]
sprintf/snprintf replacements (#548)

* fix g++ 9.3 warnings about snprintf.

These appear at -O2.

* handle garmin category conversion similar to garmin_fs.cc

* fix stmwpp includes under configure.

5 years agointroduce xasprintf that accepts a QScopedPointer& (#547)
tsteven4 [Tue, 28 Apr 2020 12:42:48 +0000 (06:42 -0600)]
introduce xasprintf that accepts a QScopedPointer& (#547)

and use it to fix gcc 9 warnings in magproto, as well as other
possible string truncations/overflows.

5 years agomigrate advanced travis build to focal. (#546)
tsteven4 [Fri, 24 Apr 2020 15:48:42 +0000 (09:48 -0600)]
migrate advanced travis build to focal. (#546)

and fix a new clazy warning.  This warning shows up on focal
with clazy 1.6, but not on eoan with clazy 1.5.

5 years agoconvert garmin_fit to Format class. (#544)
tsteven4 [Tue, 21 Apr 2020 20:38:47 +0000 (14:38 -0600)]
convert garmin_fit to Format class. (#544)

Additionally, modernize fit reader:
use a container to hold field information for a message.
pass fit fields and message defs by const reference.

5 years agoUpdate changelog for 1.6.0+ds-11 release
Jochen Sprickerhof [Tue, 21 Apr 2020 17:40:58 +0000 (19:40 +0200)]
Update changelog for 1.6.0+ds-11 release

5 years agobump policy version (no changes)
Jochen Sprickerhof [Tue, 21 Apr 2020 17:38:32 +0000 (19:38 +0200)]
bump policy version (no changes)

5 years agoAdd patch for strcmp
Jochen Sprickerhof [Tue, 21 Apr 2020 17:29:15 +0000 (19:29 +0200)]
Add patch for strcmp

Closes: #957304
5 years agoadd missing include file to build.
tsteven4 [Tue, 21 Apr 2020 00:32:02 +0000 (18:32 -0600)]
add missing include file to build.

5 years agoimprove MSVC 2015 workaround. (#543)
tsteven4 [Sun, 19 Apr 2020 20:44:43 +0000 (14:44 -0600)]
improve MSVC 2015 workaround. (#543)

5 years agoconvert subrip, energympro, globalsat_sport to Format class (#542)
tsteven4 [Sat, 18 Apr 2020 12:34:39 +0000 (06:34 -0600)]
convert subrip, energympro, globalsat_sport to Format class (#542)

* convert subrip, energympro, globalsat_sport to Format.

* update dependencies in Makefile

5 years agoupdate linux/macos CI Qt 5.12.8 (#541)
tsteven4 [Sat, 18 Apr 2020 12:17:27 +0000 (06:17 -0600)]
update linux/macos CI Qt 5.12.8 (#541)

* update CI to 5.12.8 (except appveyor)

we use the appveyor installed Qt 5.12, which is currently
5.12.6.

* update travis yaml syntax.

* update macos build system for Qt 5.12 build.

* try osx_image: xcode11.3

osx_image xcode10.3 failed 3 times in a row.  It showed an
incomplete Qt install and repeated attempts to detatch.

* debug macos qt install fails

* Revert "debug macos qt install fails"

This reverts commit 36df50bc865b515b4545f5f25cc65f5e0575d325.

* Revert "try osx_image: xcode11.3"

This reverts commit ff1e803234b31671e77d8d9ca68e74d62e753b80.

* Revert "update macos build system for Qt 5.12 build."

This reverts commit efedf5132a84141ae351cfe308433bfbda53374b.

* cleanup new docker script.

* build docker image in clean directory.

* move macos Qt 5.12 build to xcode 10.3.

This includes a workaround for a bug in the Qt intaller
that causes segmentation faults in the Qt installer when
the minimal platform is used on macos 10.14, 10.15.

5 years agoassume energympro and globalsatsport use LocalTime. (#447)
tsteven4 [Fri, 17 Apr 2020 12:28:34 +0000 (06:28 -0600)]
assume energympro and globalsatsport use LocalTime. (#447)

* assume energympro and globalsatsport use LocalTime.

add an option to set the timezone for these formats, as the
timezone used to create the data may not match the timezone of the
computer reading the data.

* modify energympro/globalsatsport tests to use

UTC offsets.  Europe/Stockholm wasn't available on our Docker
bionic test image.

* util.cc build fix

include QTimeZone, dropped in manual merge

* Fix build error in util.cc

Lazy conflict merging.

* modify serialization ref files for new option.

* make new var static in energympro.

Co-authored-by: GPSBabel <gpsbabel@users.noreply.github.com>
5 years agoAdded support for Qstarz BL-1000 .BIN files (#515)
Pierre Bernard [Fri, 17 Apr 2020 12:17:18 +0000 (14:17 +0200)]
Added support for Qstarz BL-1000 .BIN files (#515)

* Added support for Qstarz BL-1000 .BIN files

* Use FormatSpecificData

* Updates based on pull request comments

* Remove executable bit on Qstarz sample file

* include-what-you-use headers

* Added format documentation for qstarz_bl_1000

Co-authored-by: gloubibou <pierre.bernard@web.de>
5 years agoA variety of loose ends (#540)
tsteven4 [Thu, 16 Apr 2020 22:06:03 +0000 (16:06 -0600)]
A variety of loose ends (#540)

* misc cleanups.

clang-tidy found the Qstring passed by value.

Attempting to build the GUI without webengine or webkit with Qt 5.15
found the missing QT module (widgets) in app.pro.  It is required by QDialog.

* fiddle with document recipes.

add qmake target to generate gpsbabel.pdf.

drop --load-trace xsltproc options when building document.

set logging level for fop to WARN
by creating $HOME/.foprc if it doesn't exist.
fop doens't have the ability to override this on the command line.

* use .foprc in build tree.

This solves the issue on travis the $HOME doesn't exist.

It also avoids writing to the users home directory.

* fiddle with configure.

* filter with doc version stuff.

5 years agoFallthrough corrections (#538)
tsteven4 [Wed, 15 Apr 2020 13:59:39 +0000 (07:59 -0600)]
Fallthrough corrections (#538)

* fix an actual bug found by Wimplicit-fallthrough=

* add comments for gcc wrt Wimplicit-fallthrough=

The real fix is the to add the attribute [[fallthrough]];
which was added in c++17.
gcc accepts this, but until c++17 there wasn't
a requirement to ignore unrecognized attributes, so we can
imagine a pre c++17 compiler might choke on it.

5 years agoFix access to QByteArray/QString outside the valid range. (#537)
tsteven4 [Tue, 14 Apr 2020 21:33:19 +0000 (15:33 -0600)]
Fix access to QByteArray/QString outside the valid range. (#537)

With Qt 5.15, and likely 5.14, the following warnings were generated during
testo:
Using QByteRef with an index pointing outside the valid range of a QByteArray. The corresponding behavior is deprecated, and will be changed in a future version of Qt.
Using QCharRef with an index pointing outside the valid range of a QString. The corresponding behavior is deprecated, and will be changed in a future version of Qt.
Note this requires Qt to be compiled for debug.

These warnings can be debugged by running testo with
"export QT_FATAL_WARNINGS=1" to generate core dumps.

I suspect the appending of null terminators in ggv_bin is unecessary,
i.e. I beleive QByteArray::resize() in ggv_bin_read_bytes will take
care of this.  Never the less I slavishly kept adding them just to make
certain.

5 years agorework subrip format synchronization. (#536)
tsteven4 [Mon, 13 Apr 2020 14:36:32 +0000 (08:36 -0600)]
rework subrip format synchronization. (#536)

* rework subrip format synchronization.

support subsecond synchronization.
validate option input.
add debug messages for synchronization.
correct option text for GUI.

* update serialization reference files for corrected subrip help.

5 years agoGeneralize xmlgeneric callbacks (#532)
tsteven4 [Mon, 13 Apr 2020 14:27:57 +0000 (08:27 -0600)]
Generalize xmlgeneric callbacks (#532)

generalize callbacks for xmlgeneric.

use newly available pointer to data member callbacks to restore
yahoo functionality.

add a yahoo test.
.
add xml_init method to automatically generate Functors.

5 years agoimprove kml reader speed 5.1x. (#531)
tsteven4 [Wed, 8 Apr 2020 12:20:52 +0000 (06:20 -0600)]
improve kml reader speed 5.1x. (#531)

6 years agoOptimize QString usage in gpx format. (#530)
tsteven4 [Sun, 5 Apr 2020 22:31:23 +0000 (16:31 -0600)]
Optimize QString usage in gpx format.  (#530)

Don't convert QStringRef to QString unecessarily.
Use QLatin1String, QStringLiteral.

A 18% performance improvement has been measured with
gpxbabel -f lowrance-v4.gpx -o lowranceusr,wversion=4 -F lowrance-v4.usr

valgrind --tool=callgrind was useful.  Further improvements in the
reader are likely to be found in xml_parse_time.

6 years agoLowranceformat (#529)
tsteven4 [Fri, 3 Apr 2020 21:41:40 +0000 (15:41 -0600)]
Lowranceformat (#529)

* convert lowranceusr format to Format class.

* fix lowranceusr linking issues on some platforms.

* workaround MSVC2015 C2373 errors with constexpr static arrays.

* try harder to work around MSVC2015 C2373.

* tweak lowrancusr

6 years agoconvert random format to Format class. (#528)
tsteven4 [Tue, 31 Mar 2020 22:40:22 +0000 (16:40 -0600)]
convert random format to Format class. (#528)

6 years agoconvert nmea format to Format class. (#524)
tsteven4 [Mon, 30 Mar 2020 20:14:57 +0000 (14:14 -0600)]
convert nmea format to Format class. (#524)

6 years agomigrate to travis-ci.com (#526)
tsteven4 [Fri, 27 Mar 2020 22:29:14 +0000 (16:29 -0600)]
migrate to travis-ci.com (#526)

* get qt installs working to load cache.

* update to travis-ci.com for github release build log links.

6 years agoupdate Dockerfiles to use webengine instead (#525)
tsteven4 [Fri, 27 Mar 2020 20:19:40 +0000 (14:19 -0600)]
update Dockerfiles to use webengine instead (#525)

of webkit.

6 years agowork around DG-100 getconfig issues (#519)
tsteven4 [Thu, 26 Mar 2020 22:05:36 +0000 (16:05 -0600)]
work around DG-100 getconfig issues (#519)

* work around dg-100 getconfig issues.

Don't issue the getconfig command on the DG-100.  Different DG-100
devices seem to return different numbers of bytes, which leads
to checksum errors, which we treat as fatal.  Before release
1.5.1 we didn't issue this command.  It was apparently added because
it changed the status light to green on the DG-200.

* restore unintended whitespace change.

6 years agomake some geojson member functions private. (#523)
tsteven4 [Thu, 26 Mar 2020 16:56:57 +0000 (10:56 -0600)]
make some geojson member functions private. (#523)

6 years agoconvert geojson format to Format class. (#522)
tsteven4 [Thu, 26 Mar 2020 14:04:08 +0000 (08:04 -0600)]
convert geojson format to Format class. (#522)

* convert geojson format to Format class.

use gpsbable::File instead of QFile for input.  This results in
better error messages.

use gpsbabel::File for output instead of gbfile.

* detect and log parser errors in geojson reader.

6 years agofix gtm writer issue with empty tracks. (#521)
tsteven4 [Mon, 23 Mar 2020 17:20:35 +0000 (11:20 -0600)]
fix gtm writer issue with empty tracks. (#521)

This format expects one track style entry for each tracklog entry
with the tracklog flag set.  If the tracklog flag is set it indicates the
start of a new track.  Each tracklog entry represents a point.
Thus, it is not possible to represent a track without any points in this
format.

This change prevents the writing of track style entries for tracks that
don't have any points.

Previously, this could cause counts from test-all in the category
"tests without error but with unexpected output" if the refernce file
had tracks with no points.